﻿/**
 * $RCSfile: LoopTag.java,v $
 * $Revision: 1.1 $
 * $Date: 2009/06/15 08:23:18 $
 *
 * Copyright (C) 2003 ICSS, Inc. All rights reserved.
 *
 * This software is the proprietary information of ICSS, Inc.
 * Use is subject to license terms.
 */
package net.sapfree.display.tags.core;

import javax.servlet.jsp.tagext.Tag;

/**
 * <p>
 * Title: 信息发布系统（CMS）
 * </p>
 * <p>
 * Description: Allows developers to write custom iteration tags by implementing
 * the LoopTag interface. (This is not to be confused with
 * javax.servlet.jsp.tagext.IterationTag as defined in JSP 1.2.) LoopTag
 * establishes a mechanism for iteration tags to be recognized and for type-safe
 * communication with custom subtags.
 * 
 * <p>
 * In most cases, it will not be necessary to implement this interface manually,
 * for a base support class (LoopTagSupport) is provided to facilitate
 * implementation.
 * </p>
 * </p>
 * 
 * <p>
 * Copyright: Copyright (c) 2003
 * </p>
 * <p>
 * Company: 中软远东国际
 * </p>
 * 
 * @author Andy
 * @version 1.0
 */
public interface LoopTag extends Tag {

	/**
	 * Retrieves the current item in the iteration. Behaves idempotently;
	 * calling getCurrent() repeatedly should return the same Object until the
	 * iteration is advanced. (Specifically, calling getCurrent() does <b>not</b>
	 * advance the iteration.)
	 * 
	 * @return the current item as an object
	 */
	public Object getCurrent();

	/**
	 * Retrieves a 'status' object to provide information about the current
	 * round of the iteration.
	 * 
	 * @return the LoopTagStatus for the current LoopTag
	 */
	public LoopTagStatus getLoopStatus();
}
